﻿using System;

namespace FotoLab.DomainLayer.Model
{
    public abstract class WithIdentity
    {

        private Guid _id;

        public Guid Id
        {
            get
            {
                if (_id.Equals(Guid.Empty))
                {
                    // Lazy Load. Voor bestaande objecten die uit de database
                    // komen hebben we al een Id en willen we dus niet in 
                    // de constructor één genereren. Voor nieuwe objecten 
                    // een id genereren zodra we die nodig hebben
                    _id = Guid.NewGuid();
                }
                return _id;
            }
            set
            {
                _id = value;
            }
        }

    }
}